<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>
    <script>
        // 数组的方法  from()  of()
        // 1.from() 将伪数组转换成真正的数组
        function add() {
            // console.log(arguments);
            // es5转换
            // let arr = [].slice.call(arguments);
            // console.log(arr);
            // es6写法
            let arr = Array.from(arguments);
            console.log(arr);
        }
        add(1, 2, 3);

        let lis = document.querySelectorAll('li')
        // console.log(lis);

        // console.log(Array.from(lis));
        // 扩展运算符 将伪数组转换成真正的数组
        // console.log([...lis]);

        // from() 还可以接受第二个参数，用来对每个元素进行处理

        let liContents = Array.from(lis, ele => ele.textContent);
        // console.log(liContents);

        // 2.of() 将任意的数据类型，转换成数组
        console.log(Array.of(3, 11, 20, [1, 2, 3], {
            id: 1
        }));


        // 3.copywithin() 数组内部将制定位置的元素复制到其它的位置，返回当前数组
        // 从3位置往后的所有数值，替换从0位置往后的三个数值
        console.log([1, 2, 3, 8, 9, 10].copyWithin(0, 3));
        //[8,9,10,8,9,10]

        //  4.find() findIndex()
        // find()找出第一个符合条件的数组成员
        let num = [1, 2, -10, -20, 9, 2].find(n => n < 0)
        // console.log(num);

        // findIndex()找出第一个符合条件的数组成员的索引
        let numIndex = [1, 2, -10, -20, 9, 2].findIndex(n => n < 0)
        // console.log(numIndex);


        // 5.entries() keys() values() 返回一个遍历器  可以使用for...of循环进行遍历
        
        // keys() 对键名遍历
        // values() 对值遍历
        // entries() 对键值对遍历
        // console.log(['a','b'].keys());

        for (let index of ['a', 'b'].keys()) {
            console.log(index);
        }

        for (let ele of ['a', 'b'].values()) {
            console.log(ele);
        }

        for(let [index,ele] of ['a','b'].entries()){
            console.log(index,ele); 
        }
        let letter = ['a','b','c'];
        let it = letter.entries();
        // console.log(it.next().value);
        // console.log(it.next().value);
        // console.log(it.next().value);
        // console.log(it.next().value);

        // 6.includes() 返回一个布尔值，表示某个数组是否包含给定的值
        console.log([1,2,3].includes(2));
        console.log([1,2,3].includes('4'));

        // 之前 indexof()
        console.log([1,2,3].indexOf('2'));


        
        
        
    </script>

</body>

</html>